package com.hjr.leetcode.question100;

/**
 * 7. 整数反转
 * 给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
 * 如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ，就返回 0。
 * 假设环境不允许存储 64 位整数（有符号或无符号）。
 */
public class q7 {

    public static void main(String[] args) {
        System.out.println(reverse(1534236469));
    }

    // 1ms 40mb
    public static int reverse(int x) {
        //第一反应：循环除以十
        if (x < 10 && x > -10){
            return x;
        }
        int total = 0;
        while (x != 0){
            int num = x % 10;
            total = total * 10 + num;
            x = x / 10;
            if ((total > Integer.MAX_VALUE /10 || total < Integer.MIN_VALUE / 10 ) &&
                    x != 0){
                return 0;
            }
        }
        return x < 0 ? -total : total;
    }
}
